#include <QObject>
#include <QPushButton>

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "CustumGroupBox/customgroupbox.h"
#include "manager.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setAttribute(Qt::WA_AlwaysShowToolTips);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::setup()
{
    LOG(objectName(), "setup");
    // setting up startup page on SW
    ui->stackedWidget->setCurrentIndex(BEGIN_PAGE);


    setupLblHeader();
}

void MainWindow::on_lblHeader_linkActivated(const QString &link)
{
    if (link==QString("#patType"))
    {
        ui->lblHeader->nextState();
    }
}

void MainWindow::on_lblHeader_linkHovered(const QString &link)
{
}

void MainWindow::on_rbBegin_toggled(bool checked)
{
    if (checked)
    {
        ui->stackedWidget->setCurrentIndex(BEGIN_PAGE);
    }
}

void MainWindow::on_rbPassport_toggled(bool checked)
{
    if (checked && ui->stackedWidget->currentIndex()!=PASSPORT_DATA)
    {
        ui->stackedWidget->setCurrentIndex(PASSPORT_DATA);
    }
}

void MainWindow::on_rbDiagnoz_toggled(bool checked)
{
    if (checked && ui->stackedWidget->currentIndex()!=DIAZGNOZ_DATA)
    {
        ui->stackedWidget->setCurrentIndex(DIAZGNOZ_DATA);
    }
}

void MainWindow::on_rbAnamnez_toggled(bool checked)
{
    if (checked && ui->stackedWidget->currentIndex()!=ANAMNEZ_DATA)
    {
        ui->stackedWidget->setCurrentIndex(ANAMNEZ_DATA);
    }
}

void MainWindow::on_rbOther_toggled(bool checked)
{
    if (checked && ui->stackedWidget->currentIndex()!=OTHER_DATA)
    {
        ui->stackedWidget->setCurrentIndex(OTHER_DATA);
    }
}

void MainWindow::on_rbResult_toggled(bool checked)
{
    if (checked && ui->stackedWidget->currentIndex()!=RESULT_DATA)
    {
        ui->stackedWidget->setCurrentIndex(RESULT_DATA);
    }
}

void MainWindow::on_btnNext_clicked()
{
    int count = ui->stackedWidget->count();
    int curr  = ui->stackedWidget->currentIndex();
    ui->stackedWidget->setCurrentIndex( (curr+1) % count );
}

void MainWindow::on_btnPrev_clicked()
{
    int curr  = ui->stackedWidget->currentIndex();
    int count = ui->stackedWidget->count();
    ui->stackedWidget->setCurrentIndex( (curr-1) % count );
}

void MainWindow::on_stackedWidget_currentChanged(int curr)
{
    if (curr==BEGIN_PAGE)
    {
        ui->btnPrev->setEnabled(false);
    } else {
        ui->btnPrev->setEnabled(true);
    }

    if (curr==RESULT_DATA)
    {
        ui->btnNext->setEnabled(false);
    } else {
        ui->btnNext->setEnabled(true);
    }

    switch (curr) {
    case BEGIN_PAGE:
        ui->rbBegin->setChecked(true);
        break;
    case PASSPORT_DATA:
        ui->rbPassport->setChecked(true);
        break;
    case DIAZGNOZ_DATA:
        ui->rbDiagnoz->setChecked(true);
        break;
    case ANAMNEZ_DATA:
        ui->rbAnamnez->setChecked(true);
        break;
    case OTHER_DATA:
        ui->rbOther->setChecked(true);
        break;
    case RESULT_DATA:
        ui->rbResult->setChecked(true);
        break;
    default:
        break;
    }
}

void MainWindow::setupLblHeader()
{
    StateLabel *lbl = ui->lblHeader;

    lbl->setToolTip("Натисніть на посилання в тексті щоб змінити на <i>стаціонарного</i> "
                    "чи назад на <i>амбулаторного</i>");

    QVector<QString> st4lblHeader;
    st4lblHeader.append("<center><font size=+2>Виписка<br/>із медичної картки "
                        "<a href=#patType>амбулаторного</a> "
                        "хворого</font>");
    st4lblHeader.append("<center><font size=+2>Виписка<br/>із медичної картки "
                        "<a href=#patType>стаціонарного</a> "
                        "хворого</p></font>");
    lbl->setStates(st4lblHeader);
}










